package action;

import com.opensymphony.xwork2.ActionSupport;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import model.Horario;
import model.Turma;
import util.Horarios;

public class HorariosAction extends ActionSupport {

    private String operacao;
    private String horarioSerial;
    private Horario horario;
    private List<Horario> horarios;
    private Turma turma;
    private int codTurma;
    private List<Enum> horas;
    private int[] diasSemana = {2, 3, 4, 5, 6};
    

    public int[] getDiasSemana() {
        return diasSemana;
    }

    public void setDiasSemana(int[] diasSemana) {
        this.diasSemana = diasSemana;
    }

    public String getHorarioSerial() {
        return horarioSerial;
    }

    public void setHorarioSerial(String horarioSerial) {
        this.horarioSerial = horarioSerial;
    }

    public List<Enum> getHoras() {
        return horas;
    }

    public void setHoras(List<Enum> horas) {
        this.horas = horas;
    }

    public String getOperacao() {
        return operacao;
    }

    public void setOperacao(String operacao) {
        this.operacao = operacao;
    }

    public Horario getHorario() {
        return horario;
    }

    public void setHorario(Horario horario) {
        this.horario = horario;
    }

    public List<Horario> getHorarios() {
        return horarios;
    }

    public void setHorarios(List<Horario> horarios) {
        this.horarios = horarios;
    }

    public Turma getTurma() {
        return turma;
    }

    public void setTurma(Turma turma) {
        this.turma = turma;
    }

    public int getCodTurma() {
        return codTurma;
    }

    public void setCodTurma(int codTurma) {
        this.codTurma = codTurma;
    }

    public String editar() throws ClassNotFoundException, SQLException {
        turma = Turma.obterTurma(codTurma);
        horarios = Horario.obterHorariosPorTurma(codTurma);
        horas = new ArrayList<Enum>();
        horas.addAll(Arrays.asList(Horarios.values()));

        return "manter";
    }

    public String confirmar() throws SQLException, ClassNotFoundException {
        List<String> diaHora = Arrays.asList(horarioSerial.split(","));
        List<Horario> horariosAnt = Horario.obterHorariosPorTurma(turma.getCodTurma());

        for (Horario h : horariosAnt) {
            h.excluir();
        }

        horarios = new ArrayList<Horario>();
        for (String e : diaHora) {
            if (!e.equals("")) {
                String vetDiaHora[] = e.split("-");
                int dia = Integer.parseInt(vetDiaHora[0]);
                String hora = vetDiaHora[1];
                horario = new Horario(turma, dia, hora);
                horarios.add(horario);
            }
        }

        for (Horario h : horarios) {
            h.gravar();
        }
        return "voltar";
    }

}
